import { IPSDELogicNode } from './ipsdelogic-node';
import { IPSDELogicParam } from './ipsdelogic-param';
import { IPSSysUtil } from '../../res/ipssys-util';

/**
 *
 * 继承父接口类型值[SYSUTIL]
 * @export
 * @interface IPSDESysUtilLogic
 */
export interface IPSDESysUtilLogic extends IPSDELogicNode {
  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get dstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParamMust(): IPSDELogicParam;

  /**
   * 系统预置功能组件对象
   *
   * @type {IPSSysUtil}
   */
  getPSSysUtil(): IPSSysUtil | null;

  /**
   * 系统预置功能组件对象
   *
   * @type {IPSSysUtil}
   */
  get psSysUtil(): IPSSysUtil | null;

  /**
   * 系统预置功能组件对象（必须存在）
   *
   * @type {IPSSysUtil}
   */
  getPSSysUtilMust(): IPSSysUtil;

  /**
   * 返回值绑定逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getRetPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 返回值绑定逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get retPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 返回值绑定逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getRetPSDELogicParamMust(): IPSDELogicParam;

  /**
   * 执行功能操作
   * @type {string}
   */
  utilAction: string;
}
